package com.flot.yazb.retrofit.service;

import com.flot.yazb.base.model.BModel;
import com.flot.yazb.base.host.HostAnoy;
import com.flot.yazb.base.host.HostApi;
import com.flot.yazb.aop.stub.RMResponse;
import com.flot.yazb.model.APIModel;
import com.flot.yazb.model.CommentModel;
import com.flot.yazb.model.PayModel;
import com.flot.yazb.model.anchor.AnchorModel;
import com.flot.yazb.model.fate.FateModel;
import com.flot.yazb.model.nearly.NearLyModel;
import com.flot.yazb.model.nearly.TranslatingModel;
import com.flot.yazb.model.other.PayStatusModel;
import com.flot.yazb.model.other.SetModle;
import com.flot.yazb.model.user.CharacterModel;
import com.flot.yazb.model.user.DubaiModel;
import com.flot.yazb.model.user.FixMsgParmsModel;
import com.flot.yazb.model.user.OrderModel;
import com.flot.yazb.model.user.SelectFriendModel;
import com.flot.yazb.model.user.SelfDetailModel;
import com.flot.yazb.model.user.SelfModel;
import com.flot.yazb.model.user.UserModel;
import com.flot.yazb.model.user.RegistModel;
import com.flot.yazb.model.user.ZhuboDetailModel;

import java.util.Map;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;


public interface BService {

    interface UserService {
        @POST("friends/user/")
        Call<String> regist1();

        @POST("friends/user/")
        Call<RMResponse<RegistModel>> regist();

        @GET("friends/user/{id}/")
        Call<RMResponse<UserModel>> getUserMsg(@Path("id") String id);

        @GET("friends/fate/")
        Call<RMResponse<FateModel[]>> getFateList();

        @GET("friends/detail/{id}/")
        Call<RMResponse<ZhuboDetailModel>> getzhuboMsg(@Path("id") String id);

        @GET("friends/luck/")
        Call<RMResponse<NearLyModel[]>> getNearPeopleList();

        @GET("friends/mail/{id}/")
        Call<RMResponse<TranslatingModel[]>> transPeople(@Path("id") String id);

        @GET("play/zhubo/")
        Call<RMResponse<AnchorModel[]>> geAnchorList();

        @GET("play/zhubo/{id}/")
        Call<RMResponse<AnchorModel>> getAnchDetail(@Path("id") String id);

        @GET("play/comment/")
        Call<RMResponse<AnchorModel[]>> getComment();

        @GET("play/headpic/")
        Call<RMResponse<AnchorModel[]>> getHeadList();

        @GET("play/video/")
        Call<RMResponse<AnchorModel[]>> getUrl();

        @GET("play/vipvideo/")
        Call<RMResponse<AnchorModel[]>> getvipUrl();

        @GET("play/phone/")
        Call<RMResponse<AnchorModel>> getPhone();

        @GET("money/choice")
        Call<RMResponse<PayModel>> getPayLink(@Query("pay_type") String pay_type,
                                              @Query("user_id") String user_id,
                                              @Query("money") String money,
                                              @Query("param") String param);

        @GET("friends/note/{id}/")
        Call<RMResponse<DubaiModel>> getDubai(@Path("id") String id);

        @POST("friends/note")
        Call<RMResponse<DubaiModel>> setDubai(@QueryMap Map<String, String> params);

        @GET("friends/seekset/{id}/")
        Call<RMResponse<SelectFriendModel>> getFriendModel(@Path("id") String id);

        @POST("friends/seekset")
        Call<RMResponse<DubaiModel>> setFriendModel(@QueryMap Map<String, String> params);

        @GET("friends/character/{id}/")
        Call<RMResponse<CharacterModel[]>> getCharacter(@Path("id") String id);

        @POST("friends/character")
        Call<RMResponse<CharacterModel>> setCharacter(@QueryMap Map<String, String> params);

        @GET("friends/hobby/{id}/")
        Call<RMResponse<CharacterModel[]>> getHobby(@Path("id") String id);

        @POST("friends/hobby")
        Call<RMResponse<CharacterModel>> setHobby(@QueryMap Map<String, String> params);

        @GET("friends/basic/{id}/")
        Call<RMResponse<SelfModel>> getSelfMsg(@Path("id") String id);

        @GET("friends/desc/{id}/")
        Call<RMResponse<SelfDetailModel>> getSelfDetailMsg(@Path("id") String id);

        //设置基本信息
        @POST("friends/basic")
        Call<RMResponse<SelfModel>> setBaseMsg(@Body FixMsgParmsModel model);

        //设置详细信息
        @POST("friends/desc")
        Call<RMResponse<SelfDetailModel>> setDetailMsg(@Body FixMsgParmsModel model);

        @GET("count/cps/{id}/")
        Call<RMResponse<BModel>> getinstall(@Path("id") String id);

        @GET("count/cps/order/{id}/")
        Call<RMResponse<OrderModel[]>> getOrder(@Path("id") String id);

        @Deprecated
        @POST("Home/money/vip")
        Call<RMResponse<BModel>> vip(@Body Map<String, String> params);

        @GET("play/comment/")
        Call<RMResponse<CommentModel[]>> getComent();

        @GET("settings/")
        Call<RMResponse<SetModle>> getSeet();

        @GET("money/paystatus")
        Call<RMResponse<PayStatusModel>> getPayStatus();

        @GET("friends/contact/{id}/")
        Call<RMResponse<ZhuboDetailModel._$0Model>> getWXP(@Path("id") String id);

    }
    @HostAnoy.NameSpace(HostApi.API_HOST)
    interface APIService{
        @POST("/")
        Call<RMResponse<APIModel>> getAPI();
    }

}

